Error Mitigation for Mobile Dimensioning in Stereo Vision

ABSTRACT

The present disclosure provides techniques for dimensioning an object by capturing two three-dimensional images of the object from orthogonal perspectives. For instance, a first three-dimensional image of a first side of a target object, and a second three-dimensional image of an orthogonal side of the generally cuboid object may be captured using a three-dimensional camera. A first two-dimensional axis-aligned minimum bounding box may be generated based on the first three-dimensional image and a second two-dimensional axis-aligned minimum bounding box may be generated based on the second three-dimensional image. The dimensions of the object may be calculated using the width of the first axis-aligned two-dimensional minimum bounding box, the width of the second axis-aligned two-dimensional minimum bounding box, and the greater of the height of the first axis-aligned two-dimensional minimum bounding box and the height of the second axis-aligned two-dimensional minimum bounding box.

BACKGROUND OF THE INVENTION

In inventory and shipping environments, a pallet must be dimensioned todetermine the cost of the pallet to a customer, as well as to determinehow much storage space the pallet requires (e.g., in a warehouse, on adelivery truck, etc.) Traditionally, workers in inventory and shippingenvironments determine the dimensions of a pallet by measuring thelength, width, and height of a pallet by hand (e.g., using a tapemeasure). However, dimensioning a pallet by hand is time-consuming andinefficient, and may not be accurate. Moreover, while it is possible toaccurately dimension objects using Simultaneous Localization and Mapping(SLAM) techniques, SLAM techniques are computationally complex, sodimensioning objects in this way requires advanced computing devicesthat are generally more expensive, making it practically difficult toequip each worker in a large inventory environment with such devices.Furthermore, while it is possible to accurately dimension objects usingfixed three-dimensional cameras, dimensioning objects in this wayrequires workers in the inventory environment to physically bringobjects to be dimensioned to the location where the fixedthree-dimensional cameras are positioned, which can be time-consumingand inefficient when dimensioning large or heavy objects, or whendimensioning a large total number of objects.

SUMMARY

The present disclosure provides techniques for dimensioning an object bycapturing two three-dimensional images of the object from orthogonalperspectives. For instance, a first three-dimensional image of a firstface of a generally cuboid object, such as a pallet, and a secondthree-dimensional image of an orthogonal face of the generally cuboidobject may be captured using a three-dimensional camera. A firsttwo-dimensional minimum bounding box may be generated based on the firstthree-dimensional image and a second two-dimensional minimum boundingbox may be generated based on the second three-dimensional image. Thedimensions of the object may be calculated using the width of the firsttwo-dimensional minimum bounding box, the width of the secondtwo-dimensional minimum bounding box, and the greater of the height ofthe first two-dimensional minimum bounding box and the height of thesecond two-dimensional minimum bounding box.

In some examples, the dimensioning techniques may include displaying agraphical representation of the first two-dimensional minimum boundingbox and/or the second two-dimensional minimum bounding box via a userinterface display. For instance, the graphical representation of thefirst and second two-dimensional minimum bounding boxes may be overlaidupon the respective first and second three-dimensional images on a userinterface display. Accordingly, the user may determine whether thetwo-dimensional minimum bounding boxes accurately include the entireobject (or group of objects) to be dimensioned and no additionalobjects. For instance, if one of the two-dimensional minimum boundingboxes does not include the entire object to be dimensioned (or all ofthe objects of a group of objects to be dimensioned), the user mayselect portions of the object (or additional objects) that should beincluded in the two-dimensional minimum bounding box via the userinterface, and the dimensions of the two-dimensional minimum boundingbox may be corrected accordingly. Similarly, if one of thetwo-dimensional minimum bounding boxes includes an additional objectthat is not part of or related to the object to be dimensioned, the usermay select the additional object that should be excluded from thetwo-dimensional minimum bounding box via the user interface, and thedimensions of the two-dimensional minimum bounding box may be correctedaccordingly.

After corrections are made, the dimensions of the object may becalculated using the (possibly corrected) width of the firsttwo-dimensional minimum bounding box, the (possibly corrected) width ofthe second two-dimensional minimum bounding box, and the greater of the(possibly corrected) height of the first two-dimensional minimumbounding box and the (possibly corrected) height of the secondtwo-dimensional minimum bounding box.

In one embodiment, a dimensioning method is provided. The dimensioningmethod comprises: capturing, by a three-dimensional camera from a firstperspective, a first three-dimensional image of an environmentcontaining a target object to be dimensioned; generating, by aprocessor, based on the first three-dimensional image, a firsttwo-dimensional minimum bounding box containing a first side of thetarget object; determining, by a processor, a first height and a firstwidth of the first two-dimensional minimum bounding box containing thefirst side of the target object; capturing, by the three-dimensionalcamera from a second perspective that is orthogonal to the firstperspective, a second three-dimensional image of the environment;generating, by a processor, based on the second three-dimensional image,a second two-dimensional minimum bounding box containing a second sideof the target object; determining, by a processor, a second height and asecond width of the second two-dimensional minimum bounding boxcontaining the second side of the target object; and determining, by theprocessor, dimensions of the target object based on the first width, thesecond width, and the greater of the first height and the second height.

In another embodiment, a mobile device is provided, comprising: athree-dimensional camera, a memory storing computer executableinstructions, and at least one processor configured to interface withthe three-dimensional camera and the memory, and configured to executethe computer executable instructions to cause the mobile device to:capture, by the three-dimensional camera from a first perspective, afirst three-dimensional image of an environment containing a targetobject to be dimensioned; generate, by the at least one processor, basedon the first three-dimensional image, a first two-dimensional minimumbounding box containing a first side of the target object; determine, bythe at least one processor, a first height and a first width of thefirst two-dimensional minimum bounding box containing the first side ofthe target object; capture, by the three-dimensional camera from asecond perspective that is orthogonal to the first perspective, a secondthree-dimensional image of the environment; generate, by the at leastone processor, based on the second three-dimensional image, a secondtwo-dimensional minimum bounding box containing a second side of thetarget object; determine, by the at least one processor, a second heightand a second width of the second two-dimensional minimum bounding boxcontaining the second side of the target object; determine, by the atleast one processor, dimensions of the target object based on the firstwidth, the second width, and the greater of the first height and thesecond height.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying figures, where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, together with the detailed description below, are incorporated inand form part of the specification, and serve to further illustrateembodiments of concepts that include the claimed invention, and explainvarious principles and advantages of those embodiments.

FIG. 1 illustrates a block diagram of a mobile computing deviceconfigured to dimension a target object, in accordance with anembodiment.

FIGS. 2-5 illustrate examples of several views of a mobile computingdevice positioned to face a first side or face of a target object to bedimensioned, in accordance with an embodiment.

FIGS. 6 and 7 illustrate example ways in which a three-dimensional imageof a target object to be dimensioned may be rotated such that anaxis-aligned two-dimensional minimum bounding box containing the targetobject may be generated, in accordance with an embodiment.

FIGS. 8 and 9 illustrate example user interface displays showing severalviews of a representation of an axis-aligned two-dimensional minimumbounding box containing a first side of the target object, overlaid overa viewfinder display of the target object, in accordance with anembodiment.

FIG. 10 illustrates an example user interface display in which a usermay move a cursor to select additional objects to be included in abounding box with the target object, in accordance with an embodiment.

FIG. 11 illustrates an example user interface display of arepresentation of a corrected two-dimensional minimum bounding boxcontaining the first side of the target object, overlaid over aviewfinder display of the target object, in accordance with anembodiment.

FIGS. 12 and 13 illustrate a user interface display in which a user maymove a cursor to select an object that the user wishes to exclude fromthe two-dimensional minimum bounding box containing the first side ofthe target object, in accordance with an embodiment.

FIGS. 14 and 15 illustrate two views of an example first and secondorthogonal faces of the target object, in accordance with an embodiment.

FIG. 16 illustrates an example user interface display showing arepresentation of a two-dimensional minimum bounding box containing asecond side of the target object, overlaid over a viewfinder display ofthe target object, in accordance with an embodiment.

FIGS. 17 and 18 illustrate how the two-dimensional minimum bounding boxcontaining the first side of the target object and the two-dimensionalminimum bounding box containing the second side of the target object maybe combined to form a three-dimensional minimum bounding box containingthe target object, in accordance with an embodiment.

FIG. 19 illustrates a flow diagram of an example computer-implementedmethod of dimensioning a target object, in accordance with anembodiment.

FIG. 20 illustrates a flow diagram of an example computer-implementedmethod of generating a two-dimensional minimum bounding box containing aside of a target object, in accordance with an embodiment.

FIG. 21 illustrates a flow diagram of an example computer-implementedmethod of correcting an initial two-dimensional minimum bounding box.

FIG. 22 illustrates a flow diagram of an example computer-implementedmethod of correcting an initial two-dimensional minimum bounding box.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions of some of the elements inthe figures may be exaggerated relative to other elements to help toimprove understanding of embodiments of the present invention.

The apparatus components have been represented where appropriate byconventional symbols in the drawings, showing only those specificdetails that are pertinent to understanding the embodiments of thepresent invention so as not to obscure the disclosure with details thatwill be readily apparent to those of ordinary skill.

DETAILED DESCRIPTION OF THE INVENTION

Referring now to the drawings, FIG. 1 illustrates a block diagram of amobile computing device 102 configured to dimension a target object (ora group of target objects, or a target object and other associatedobjects collectively, etc.). Generally speaking, the mobile computingdevice 102 may include a three-dimensional camera 104 configured tocapture three-dimensional images (and/or three-dimensional point cloudrepresentations) of objects. Additionally, the mobile computing device102 may include a user interface 106 configured to display a digitalviewfinder display for the three-dimensional camera 104. In someexamples, the user interface 106 may also display information to usersand/or receive input from users.

Furthermore, one embodiment of the mobile computing device 102 mayinclude a processor 108 such as, for example, one or moremicroprocessors, controllers, and/or any suitable type of processor. Inanother embodiment, the processor 108 is a special-purpose dimensioningprocessor, for example including a specially configured ASIC(Application-specific Integrated Circuit) or FPGA (Field-programmableGate Array) circuitry optimized for processing three-dimensional imagescaptured by the three-dimensional camera 104. Advantageously, becausethe initial three-dimensional construction may be done by thethree-dimensional camera 104 using the techniques described herein, thecomputing power required by the processor 108 may be decreased by usingthe techniques described herein rather than traditional SLAM techniques,where the three-dimensional construction is done entirely by theprocessor. The mobile computing device 102 may further include a memory110 (e.g., volatile memory, non-volatile memory) accessible by theprocessor 108 (e.g., via a memory controller). The example processor 108interacts with the memory 110 to obtain, for example, computer-readableinstructions or other data stored in the memory 110. Themachine-readable instructions stored on the memory 128 may includeinstructions for carrying out any of the steps of any of the methods900, 1000, 1100, and/or 1200 described in greater detail below at FIGS.19-22, respectively.

In particular, the memory 110 may store computer-readable instructionsfor executing a dimensioning application 112 for dimensioning an objector group of objects. In some examples, the dimensioning application 112may cause the user interface 106 to display instructions for a user. Forinstance, the dimensioning application 112 may cause the user interface106 to display an indication that a user should position thethree-dimensional camera 104 of the mobile computing device 102 to facea first side or face of a target object to be dimensioned. For example,FIGS. 2-5 illustrate several views of a mobile computing device 102positioned to face a first side or face 114 of a target object 116.Furthermore, the dimensioning application 112 may cause the userinterface 106 to display an indication that the user should position thethree-dimensional camera 104 closer to or further from the target object116, e.g., to ensure that the entire target object 116 or group oftarget objects is captured by the three-dimensional camera 104. Thedimensioning application 112 may cause the three-dimensional camera 104to capture a first three-dimensional image of the target object 116(e.g., based on receiving an indication of a user selection of an optionto “capture image” via the user interface 106).

The dimensioning application 112 may determine a height and width of thefirst side (or face) 114 of the target object 116 based on the firstthree-dimensional image of the target object 116. In particular, thedimensioning application 112 may analyze the three-dimensional image todetermine a plane of the floor or ground in the three-dimensional image,and rotate the captured three-dimensional image so that the plane of thefloor or ground is aligned with the X-Z plane of an internal coordinatesystem of the dimensioning application 112, e.g., as shown in FIG. 6.Next, the dimensioning application 112 may segment the target object 116from the background and the ground or floor in the rotatedthree-dimensional image, i.e., such that the segmented three-dimensionalimage contains the first side 114 of the target object 116 but excludesthe floor and the environment. Furthermore, the dimensioning application112 may further rotate the segmented three-dimensional image so that anedge of the target object 116 (e.g. a “skid” of a pallet) is alignedwith the X axis of the internal coordinate system, e.g., as shown inFIG. 7. Using the axis-aligned and segmented three-dimensional image,the dimensioning application 112 may generate an axis-alignedtwo-dimensional minimum bounding box for the first side 114 of thetarget object 116, with the height of the two-dimensional minimumbounding box being equal to the difference between the maximum Y valueand the minimum Y value for the axis-aligned and segmentedthree-dimensional image, and the width of the two-dimensional minimumbounding box being equal to the difference between the maximum X valueand the minimum X value for the axis-aligned and segmentedthree-dimensional image. Thus, the dimensioning application 112 maydetermine the height and the width for the first side 114 of the targetobject 116 based on the height and width of the generatedtwo-dimensional minimum bounding box.

In some examples, the dimensioning application 112 may cause the userinterface 106 to display an image representing the two-dimensionalminimum bounding box (e.g., an image representing the two-dimensionalminimum bounding box overlaid over the viewfinder display for thethree-dimensional camera 104). For instance, FIGS. 8 and 9 illustrateexample user interface displays showing several views of arepresentation of an axis-aligned two-dimensional minimum bounding box118 for the first side 114 of the target object 116 overlaid over aviewfinder display of the target object 116.

Moreover, in some examples, the dimensioning application 112 may receiveinput from users (e.g., via the user interface 106) regarding thetwo-dimensional minimum bounding box 118. For example, a user mayindicate, via the user interface 106, that the two-dimensional minimumbounding box does not include a portion of the target object 116, ordoes not include an object of a group of target objects. For instance, auser may select, on the viewfinder display for the three-dimensionalcamera 104 displayed by the user interface 106, the location of theportion of the target object 116, or an additional object associatedwith the target object 116, that should be included in the bounding box118. For example, FIG. 10 illustrates a user interface display in whicha user may move a cursor 120 on the user interface 106 to selectadditional objects 122 and 124 to be included in the bounding box 118with the target object 116. FIG. 11 illustrates a user interface displayof a representation of a corrected two-dimensional minimum bounding box118 for the first side 114 of the target object 116 overlaid over aviewfinder display of the target object 116. In particular, thecorrected two-dimensional minimum bounding box 118 as shown in FIG. 11includes the additional objects 122 and 124, as well as the targetobject 116.

Similarly, a user may indicate, via the user interface 106, that thetwo-dimensional minimum bounding box 118 includes something that is notassociated with the target object 116 or group of objects (e.g., anadditional object near the target object 116). For instance, a user mayselect, on the viewfinder display for the three-dimensional camera 104displayed by the user interface 106, the location of the additionalobject that should not be included in the bounding box 118. For example,FIGS. 12 and 13 illustrate a user interface display in which a user maymove a cursor 120 on the user interface 106 to select an object 126 thatis currently included in the bounding box 118 with the target object 116that the user wishes to exclude from the bounding box 118.

Based on the information provided by the user via the user interface106, the dimensioning application 112 may correct the two-dimensionalminimum bounding box 118 to include or exclude additional objects asneeded, and may and determine a corrected height and width for thetarget object 116 based on the corrected two-dimensional minimumbounding box 118. In some examples, the dimensioning application maydisplay an image representing the corrected two-dimensional minimumbounding box 118 (e.g., an image representing the correctedtwo-dimensional minimum bounding box 118 overlaid over the viewfinderdisplay for the three-dimensional camera 104). The dimensioningapplication 112 may make additional corrections to the two-dimensionalminimum bounding box 118 as needed based on user input, e.g., until auser provides additional input indicating his or her satisfaction withthe two-dimensional minimum bounding box 118. Accordingly, thedimensioning application 112 may determine a (in some cases, corrected)height and width for the first side of the target object 116 based onthe final corrected two-dimensional minimum bounding box 118. It shouldbe noted that, in other examples, the mobile computing device 102 maydetermine a height and a width for the bounding box 118 withoutreceiving user input.

The dimensioning application 112 may cause the user interface 106 todisplay an indication that a user should position the three-dimensionalcamera 104 of the mobile computing device 102 to face a second side orface of the target object 116. In particular, the second side or face ofthe target object 116 is orthogonal to the first side or face of thetarget object. For example, FIGS. 14 and 15 illustrate two views of thefirst face 114 and second (orthogonal) face or side 128 of the targetobject 116.

As discussed with respect to the first side of the target object 116, athree-dimensional image of the second side 128 of the target object 116may be captured, and a two-dimensional minimum bounding box for thesecond side 128 of the target object 116 may be generated. For example,FIG. 16 illustrates an example user interface display showing arepresentation of a two-dimensional minimum bounding box 130 for thesecond side 128 of the target object 116 overlaid over a viewfinderdisplay of the target object 116.

In some examples, the two-dimensional minimum bounding box 130 for thesecond side or face 128 of the target object 116 corrected as neededbased on user input, as with the first side 114. Accordingly, thedimensioning application 112 may determine a (in some cases, corrected)height and width for the second side 128 of the target object 116. Thedimensioning application 112 may determine dimensions of the targetobject 116 using the height and width for the first side 114 of thetarget object 116 and the height and width for the second side 128 ofthe target object 116. In particular, the dimensioning application maygenerate a three-dimensional bounding box for the target object 116using the two-dimensional minimum bounding boxes 118 and 130. As shownin FIGS. 17 and 18, the shared height of the bounding boxes 118 and 130,and the width of each of the bounding boxes 118 and 130 form athree-dimensional bounding box 132 for the target object 116 (or groupof target objects).

In particular, the dimensioning application may generate thethree-dimensional bounding box 132 for the target object 116 using thegreater of the two heights (of the bounding box 118 and the bounding box130) as the height of the three-dimensional bounding box 132, the widthof the bounding box 118 as the width of the three-dimensional boundingbox 132, and the width of the bounding box 130 as the depth of thethree-dimensional bounding box 132. Accordingly, the target object 116or group of target objects may be dimensioned using the three dimensionsof the three-dimensional bounding box 132.

Referring now to FIG. 19, the flow diagram 900 illustrates an examplecomputer-implemented method of dimensioning a target object. One or moresteps of the method 900 may be implemented as a set of instructionsstored on a computer-readable memory and executable on one or moreprocessors.

At block 902, a first three-dimensional image (and/or point cloud) of afirst perspective of an environment containing a target object to bedimensioned may be captured by a three-dimensional camera. At block 904,a first two-dimensional minimum bounding box containing a first side ofthe target object may be generated (discussed in greater detail withrespect to FIG. 20). In some examples, a corrected first two-dimensionalminimum bounding box may be generated, as discussed in greater detailwith respect to FIGS. 21 and 22. At block 906, a first height and afirst width of the first two-dimensional minimum bounding box containingthe first side of the target object may be determined. At block 908, asecond three-dimensional image (and/or point cloud) of a secondperspective (orthogonal to the first perspective) of the imagecontaining the target object may be captured by the three-dimensionalcamera. At block 910, a second two-dimensional minimum bounding boxcontaining a second side of the target object may be generated based onthe second three-dimensional image or point cloud (discussed in greaterdetail with respect to FIG. 20). In some examples, a corrected secondtwo-dimensional minimum bounding box may be generated, as discussed ingreater detail with respect to FIGS. 21 and 22. At block 912, a secondheight and a second width of the second two-dimensional minimum boundingbox containing the second side of the target object may be determined.

At block 914, dimensions of the target object may be determined based onthe first width, the second width, and the greater of the first heightand the second height. For instance, in some examples, athree-dimensional minimum bounding box containing the target object maybe generated, with the width of the three-dimensional bounding box beingthe first width, the depth of the three-dimensional bounding box beingthe second width, and the height of the three-dimensional bounding boxbeing the greater of the first height and the second height.

Referring now to FIG. 20, the flow diagram 1000 illustrates an examplecomputer-implemented method of generating a two-dimensional minimumbounding box containing a side of a target object (e.g., the first sideof the target object, or the second side of the target object discussedwith respect to FIG. 19). One or more steps of the method 1000 may beimplemented as a set of instructions stored on a computer-readablememory and executable on one or more processors.

At block 1002, the three-dimensional image may be analyzed to determinea plane of a floor in the three-dimensional image. At block 1004, thethree-dimensional image may be rotated such that the plane of the flooris aligned with an X-Z plane of a coordinate system. At block 1006, thethree-dimensional image may be segmented such that a target objectsegment of the three-dimensional image contains the side of the targetobject and excludes the floor and the environment. At block 1008, thethree-dimensional image may be rotated such that an edge of the targetobject is aligned with an X axis of the coordinate system. At block1010, a two-dimensional minimum bounding box containing the side of thetarget object segment may be generated.

Referring now to FIG. 21, the flow diagram 1100 illustrates an examplecomputer-implemented method of correcting an initial two-dimensionalminimum bounding box (e.g., the first two-dimensional minimum boundingbox or the second two-dimensional minimum bounding box). One or moresteps of the method 1100 may be implemented as a set of instructionsstored on a computer-readable memory and executable on one or moreprocessors.

At block 1102, the first (or the second) three-dimensional image and agraphical depiction of the first (or the second) two-dimensional minimumbounding box may be displayed via a user interface. For instance, thegraphical depiction of the two-dimensional minimum bounding box may bedisplayed overlaid over the three-dimensional image. At block 1104, anindication of a user selection of a second object excluded from thefirst two-dimensional minimum bounding box may be received by the userinterface. At block 1106, a corrected two-dimensional minimum boundingbox containing the target object and the second object may be generatedbased on the user selection. At block 1108, a corrected height and/orcorrected width for the corrected two-dimensional minimum bounding boxmay be determined. At block 1110, corrected dimensions of the targetobject may be determined based on the corrected height and/or correctedwidth for the corrected two-dimensional minimum bounding box.

For instance, if the corrected two-dimensional minimum bounding box isthe first two-dimensional minimum bounding box, the corrected dimensionsof the target object may be determined based on the corrected firstwidth, the second width, and the greater of the corrected first heightand the second height. Similarly, if the corrected two-dimensionalminimum bounding box is the second two-dimensional minimum bounding box,the corrected dimensions of the target object may be determined based onthe first width, the corrected second width, and the greater of thecorrected first height and the second height. In some examples, both thefirst two-dimensional minimum bounding box and the secondtwo-dimensional minimum bounding box may be corrected, in which case thecorrected dimensions of the target object may be determined based on thecorrected first width, the corrected second width, and the greater ofthe corrected first height and the corrected second height.

Referring now to FIG. 22, the flow diagram 1200 illustrates an examplecomputer-implemented method of correcting an initial two-dimensionalminimum bounding box (e.g., the first two-dimensional minimum boundingbox or the second two-dimensional minimum bounding box). One or moresteps of the method 1200 may be implemented as a set of instructionsstored on a computer-readable memory and executable on one or moreprocessors.

At block 1202, the first (or the second) three-dimensional image and agraphical depiction of the first (or the second) two-dimensional minimumbounding box may be displayed via a user interface. For instance, thegraphical depiction of the two-dimensional minimum bounding box may bedisplayed overlaid over the three-dimensional image. At block 1204, anindication of a user selection of a second object contained in the firsttwo-dimensional minimum bounding box may be received by the userinterface. At block 1106, a corrected two-dimensional minimum boundingbox containing the target object and excluding the second object may begenerated based on the user selection. At block 1208, a corrected heightand/or corrected width for the corrected two-dimensional minimumbounding box may be determined. At block 1210, corrected dimensions ofthe target object may be determined based on the corrected height and/orcorrected width for the corrected two-dimensional minimum bounding box.

For instance, if the corrected two-dimensional minimum bounding box isthe first two-dimensional minimum bounding box, the corrected dimensionsof the target object may be determined based on the corrected firstwidth, the second width, and the greater of the corrected first heightand the second height. Similarly, if the corrected two-dimensionalminimum bounding box is the second two-dimensional minimum bounding box,the corrected dimensions of the target object may be determined based onthe first width, the corrected second width, and the greater of thecorrected first height and the second height. In some examples, both thefirst two-dimensional minimum bounding box and the secondtwo-dimensional minimum bounding box may be corrected, in which case thecorrected dimensions of the target object may be determined based on thecorrected first width, the corrected second width, and the greater ofthe corrected first height and the corrected second height.

In the foregoing specification, specific embodiments have beendescribed. However, one of ordinary skill in the art appreciates thatvarious modifications and changes can be made without departing from thescope of the invention as set forth in the claims below. Accordingly,the specification and figures are to be regarded in an illustrativerather than a restrictive sense, and all such modifications are intendedto be included within the scope of present teachings. Additionally, thedescribed embodiments/examples/implementations should not be interpretedas mutually exclusive, and should instead be understood as potentiallycombinable if such combinations are permissive in any way. In otherwords, any feature disclosed in any of the aforementionedembodiments/examples/implementations may be included in any of the otheraforementioned embodiments/examples/implementations.

The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The invention is definedsolely by the appended claims including any amendments made during thependency of this application and all equivalents of those claims asissued.

Moreover in this document, relational terms such as first and second,top and bottom, and the like may be used solely to distinguish oneentity or action from another entity or action without necessarilyrequiring or implying any actual such relationship or order between suchentities or actions. The terms “comprises,” “comprising,” “has”,“having,” “includes”, “including,” “contains”, “containing” or any othervariation thereof, are intended to cover a non-exclusive inclusion, suchthat a process, method, article, or apparatus that comprises, has,includes, contains a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus. An element proceeded by“comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . .a” does not, without more constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises, has, includes, contains the element. The terms“a” and “an” are defined as one or more unless explicitly statedotherwise herein. The terms “substantially”, “essentially”,“approximately”, “about” or any other version thereof, are defined asbeing close to as understood by one of ordinary skill in the art, and inone non-limiting embodiment the term is defined to be within 10%, inanother embodiment within 5%, in another embodiment within 1% and inanother embodiment within 0.5%. The term “coupled” as used herein isdefined as connected, although not necessarily directly and notnecessarily mechanically. A device or structure that is “configured” ina certain way is configured in at least that way, but may also beconfigured in ways that are not listed.

As used herein, each of the terms “tangible machine-readable medium,”“non-transitory machine-readable medium” and “machine-readable storagedevice” is expressly defined as a storage medium (e.g., a platter of ahard disk drive, a digital versatile disc, a compact disc, flash memory,read-only memory, random-access memory, etc.) on which machine-readableinstructions (e.g., program code in the form of, for example, softwareand/or firmware) can be stored. Further, as used herein, each of theterms “tangible machine-readable medium,” “non-transitorymachine-readable medium” and “machine-readable storage device” isexpressly defined to exclude propagating signals. That is, as used inany claim of this patent, a “tangible machine-readable medium” cannot beread to be implemented by a propagating signal. Further, as used in anyclaim of this patent, a “non-transitory machine-readable medium” cannotbe read to be implemented by a propagating signal. Further, as used inany claim of this patent, a “machine-readable storage device” cannot beread to be implemented by a propagating signal.

Additionally, as used herein, each of the terms “tangiblemachine-readable medium,” “non-transitory machine-readable medium” and“machine-readable storage device” is expressly defined as a storagemedium on which machine-readable instructions are stored for anysuitable duration of time (e.g., permanently, for an extended period oftime (e.g., while a program associated with the machine-readableinstructions is executing), and/or a short period of time (e.g., whilethe machine-readable instructions are cached and/or during a bufferingprocess)).

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separately claimed subject matter.

What is claimed is:
 1. A dimensioning method, comprising: capturing, bya three-dimensional camera from a first perspective, a firstthree-dimensional image of an environment containing a target object tobe dimensioned; generating, by a processor, based on the firstthree-dimensional image, a first two-dimensional minimum bounding boxcontaining a first side of the target object; determining, by theprocessor, a first height and a first width of the first two-dimensionalminimum bounding box containing the first side of the target object;capturing, by the three-dimensional camera from a second perspectivethat is orthogonal to the first perspective, a second three-dimensionalimage of the environment containing the target object to be dimensioned;generating, by the processor, based on the second three-dimensionalimage, a second two-dimensional minimum bounding box containing a secondside of the target object; determining, by the processor, a secondheight and a second width of the second two-dimensional minimum boundingbox containing the second side of the target object; and determining, bythe processor, dimensions of the target object based on the first width,the second width, and the greater of the first height and the secondheight.
 2. The dimensioning method of claim 1, further comprising:displaying, by a user interface, the first three-dimensional image and agraphical depiction of the first two-dimensional minimum bounding box;receiving, by the user interface, an indication of a user selection of asecond object contained in the first two-dimensional minimum boundingbox; generating, by the processor, based on the user selection, one ormore of a corrected first height and a corrected first width for acorrected two-dimensional minimum bounding box containing the targetobject and excluding the second object; and determining, by theprocessor, corrected dimensions of the target object based on thecorrected first width, the second width, and the greater of thecorrected first height and the second height.
 3. The dimensioning methodof claim 1, further comprising: displaying, by a user interface, thefirst three-dimensional image and a graphical depiction of the firsttwo-dimensional minimum bounding box; receiving, by the user interface,an indication of a user selection of a second object not contained inthe first two-dimensional minimum bounding box; generating, by theprocessor, based on the user selection, one or more of a corrected firstheight and a corrected first width for a corrected two-dimensionalminimum bounding box containing the target object and including thesecond object; and determining corrected dimensions of the target objectbased on the corrected first width, the second width, and the greater ofthe corrected first height and the second height.
 4. The dimensioningmethod of claim 1, further comprising: displaying, by a user interface,the second three-dimensional image and a graphical depiction of thesecond two-dimensional minimum bounding box; receiving, by the userinterface, an indication of a user selection of a second objectcontained in the second two-dimensional minimum bounding box;generating, by the processor, based on the user selection, one or moreof a corrected first height and a corrected first width for a correctedsecond two-dimensional minimum bounding box containing the target objectand excluding the second object; and determining, by the processor,corrected dimensions of the target object based on the first width, thecorrected second width, and the greater of the first height and thecorrected second height.
 5. The dimensioning method of claim 1, furthercomprising: displaying, by a user interface, the secondthree-dimensional image and a graphical depiction of the secondtwo-dimensional minimum bounding box; receiving, by the user interface,an indication of a user selection of a second object not contained inthe second two-dimensional minimum bounding box; generating, by theprocessor, based on the user selection, one or more of a correctedsecond height and a corrected second width for a corrected secondtwo-dimensional minimum bounding box containing the target object andincluding the second object; and determining corrected dimensions of thetarget object based on the first width, the corrected second width, andthe greater of the first height and the corrected second height.
 6. Thedimensioning method of claim 1, wherein the first and secondtwo-dimensional minimum bounding boxes are two-dimensional axis-alignedminimum bounding boxes.
 7. The dimensioning method of claim 1, whereingenerating the first two-dimensional minimum bounding box containing thetarget object comprises: analyzing, by the processor, the firstthree-dimensional image to determine a plane of a floor in the firstthree-dimensional image; rotating, by the processor, the firstthree-dimensional image such that the plane of the floor is aligned withan X-Z plane of a coordinate system; rotating, by the processor, thefirst three-dimensional image such that an edge of the target object isaligned with an X axis of the coordinate system; segmenting, by theprocessor, the first three-dimensional image such that a target objectsegment of the first three-dimensional image contains the first side ofthe target object and excludes the floor and the environment containingthe target object to be dimensioned; and generating, by the processorthe first two-dimensional minimum bounding box containing the first sideof the target object.
 8. The dimensioning method of claim 1, whereingenerating the second two-dimensional minimum bounding box containingthe target object comprises: analyzing, by the processor, the secondthree-dimensional image to determine a plane of a floor in the secondthree-dimensional image; rotating, by the processor, the secondthree-dimensional image such that the plane of the floor is aligned withan X-Z plane of a coordinate system; rotating, by the processor, thesecond three-dimensional image such that an edge of the target object isaligned with an X axis of the coordinate system; and segmenting, by theprocessor, the second three-dimensional image such that a target objectsegment of the second three-dimensional image contains the second sideof the target object and excludes the floor and the environmentcontaining the target object to be dimensioned; and generating thesecond two-dimensional minimum bounding box containing the second sideof the target object segment.
 9. A mobile device, comprising: athree-dimensional camera, a memory storing computer executableinstructions: at least one processor configured to interface with thethree-dimensional camera and the memory, and configured to execute thecomputer executable instructions to cause the mobile device to: capture,by the three-dimensional camera from a first perspective, a firstthree-dimensional image of an environment containing a target object tobe dimensioned; generate, by the at least one processor, based on thefirst three-dimensional image, a first two-dimensional minimum boundingbox containing a first side of the target object; determine, by the atleast one processor, a first height and a first width of the firsttwo-dimensional minimum bounding box containing the first side of thetarget object; capture, by the three-dimensional camera from a secondperspective that is orthogonal to the first perspective, a secondthree-dimensional image of the environment containing the target objectto be dimensioned; generate, by the at least one processor, based on thesecond three-dimensional image, a second two-dimensional minimumbounding box containing a second side of the target object; determine,by the at least one processor, a second height and a second width of thesecond two-dimensional minimum bounding box containing the second sideof the target object; and determine, by the at least one processor,dimensions of the target object based on the first width, the secondwidth, and the greater of the first height and the second height. 10.The mobile device of claim 9, further comprising a user interface,wherein the at least one processor is further configured to interfacewith the user interface, and wherein the computer executableinstructions further cause the mobile device to: display, by the userinterface, the first three-dimensional image and a graphical depictionof the first two-dimensional minimum bounding box; receive, by the userinterface, an indication of a user selection of a second objectcontained in the first two-dimensional minimum bounding box; generate,by the at least one processor, based on the user selection, one or moreof a corrected first height and a corrected first width for a correctedtwo-dimensional minimum bounding box containing the target object andexcluding the second object; and determine, by the at least oneprocessor, corrected dimensions of the target object based on thecorrected first width, the second width, and the greater of thecorrected first height and the second height.
 11. The mobile device ofclaim 9, further comprising a user interface, wherein the at least oneprocessor is further configured to interface with the user interface,and wherein the computer executable instructions further cause themobile device to: display, by the user interface, the firstthree-dimensional image and a graphical depiction of the firsttwo-dimensional minimum bounding box; receive, by the user interface, anindication of a user selection of a second object not contained in thefirst two-dimensional minimum bounding box; generate, by the at leastone processor, based on the user selection, one or more of a correctedfirst height and a corrected first width for a corrected two-dimensionalminimum bounding box containing the target object and including thesecond object; and determine, by the at least one processor, correcteddimensions of the target object based on the corrected first width, thesecond width, and the greater of the corrected first height and thesecond height.
 12. The mobile device of claim 9, further comprising auser interface, wherein the at least one processor is further configuredto interface with the user interface, and wherein the computerexecutable instructions further cause the mobile device to: display, bythe user interface, the second three-dimensional image and a graphicaldepiction of the second two-dimensional minimum bounding box; receive,by the user interface, an indication of a user selection of a secondobject contained in the second two-dimensional minimum bounding box;generate, by the at least one processor, based on the user selection,one or more of a corrected second height and a corrected second widthfor a corrected second two-dimensional minimum bounding box containingthe target object and excluding the second object; and determine, by theat least one processor, corrected dimensions of the target object basedon the first width, the corrected second width, and the greater of thefirst height and the corrected second height.
 13. The mobile device ofclaim 9, further comprising a user interface, wherein the at least oneprocessor is further configured to interface with the user interface,and wherein the computer executable instructions further cause themobile device to: display, by the user interface, the secondthree-dimensional image and a graphical depiction of the secondtwo-dimensional minimum bounding box; receive, by the user interface, anindication of a user selection of a second object not contained in thesecond two-dimensional minimum bounding box; generate, by the at leastone processor, based on the user selection, one or more of a correctedsecond height and a corrected second width for a corrected secondtwo-dimensional minimum bounding box containing the target object andincluding the second object; and determine, by the at least oneprocessor, corrected dimensions of the target object based on the firstwidth, the corrected second width, and the greater of the first heightand the corrected second height.
 14. The mobile device of claim 9,wherein the first and second two-dimensional minimum bounding boxes aretwo-dimensional axis-aligned minimum bounding boxes.
 15. The mobiledevice of claim 9, wherein the computer executable instructions causethe mobile device to generate the first two-dimensional minimum boundingbox containing the target object by: analyze, by the at least oneprocessor, the first three-dimensional image to determine a plane of afloor in the first three-dimensional image; rotate, by the at least oneprocessor, the first three-dimensional image such that the plane of thefloor is aligned with an X-Z plane of a coordinate system; rotate, bythe at least one processor, the first three-dimensional image such thatan edge of the target object is aligned with an X axis of the coordinatesystem; segment, by the at least one processor, the firstthree-dimensional image such that a target object segment of the firstthree-dimensional image contains the first side of the target object andexcludes the floor and the environment containing the target object tobe dimensioned; and generate, by the at least one processor, the firsttwo-dimensional minimum bounding box containing the first side of thetarget object segment.
 16. The mobile device of claim 9, wherein thecomputer executable instructions cause the mobile device to generate thesecond two-dimensional minimum bounding box containing the target objectby: analyze, by the at least one processor, the second three-dimensionalimage to determine a plane of a floor in the first three-dimensionalimage; rotate, by the at least one processor, the secondthree-dimensional image such that the plane of the floor is aligned withan X-Z plane of a coordinate system; rotate, by the at least oneprocessor, the second three-dimensional image such that an edge of thetarget object is aligned with an X axis of the coordinate system;segment, by the at least one processor, the second three-dimensionalimage such that a target object segment of the second three-dimensionalimage contains the second side of the target object and excludes thefloor and the environment containing the target object to bedimensioned; and generate, by the at least one processor, a secondtwo-dimensional minimum bounding box containing the second side of thetarget object segment.